/*
 * EnvironmentArea.h
 *
 *  Created on: 24/ott/2013
 *      Author: angelo
 */

#ifndef ENVIRONMENTAREA_H_
#define ENVIRONMENTAREA_H_

#include <list>
#include <map>
#include <stdio.h>
#include <stdlib.h>
#include <random>
#include "Coordinates.h"
#include "Survivor.h"
#include "StemIslands.h"
#include "Strip.h"
#include "Config.h"

using namespace std;

#define B_SIZE 512

class EnvironmentArea {

public:
	EnvironmentArea(int nChannels);
	virtual ~EnvironmentArea();

	void initializeRandomly(int maxX, int maxY, double nodeRadius, int nChannels, double lambdaPoisson, int minCG, int maxCG, double minVarG, double maxVarG);
	void initializeFromFile(char *filename, int maxX, int maxY, double nodeRadius, int nChannels);

	StemIslands *calculateCoveringNodes(Config *conf);

public:
	int maxX;
	int maxY;

	double nodeRadius;

	// lista dei sopravvissuti dell'area
	list<Survivor *> survivors;
};

#endif /* ENVIRONMENTAREA_H_ */
